<?php

/**
 * @desc Удаляет администратора.
 *
 */
class Security_Backend_Admins_Delete extends Backend_Component_Delete
{
    
    /**
     * @desc Реализация обработки пользовательского запроса.
     *
     */
    protected function _delete() 
    {
        // удаляем его как субъекта безлпасности
        $query = '
            DELETE
                   `s_s`, `s_a` 
              FROM 
                   `system_admin` `s_a` 
         LEFT JOIN 
                   `system_subject` `s_s` 
                ON 
                   `s_s`.`id` = `s_a`.`subject_id` 
             WHERE 
                   `s_a`.`subject_id` = ' . (int)Application::getRequest()->get('id');
        
        database::query($query);
        return database::affectedRows() > 0;
    }
    
    /**
    * @desc Запрещаем админу удаление самого себя.
    * 
    */
    protected function _allowed() 
    {
        return Application::getRequest()->get('id') == Security_Session::getSubjectId(Security_Subject::ADMIN) 
             ? false
             : parent::_allowed();
    }
    
}
